<?php
function str2int($str)
{
  return ((ord($str[3])<<24)+(ord($str[2])<<16)+(ord($str[1])<<8)+ord($str[0]));
}
function unExplode($spe,$indxNames,$rcd)
{
  $str='';
  $i=0;
  while ($indxNames[$i]!='')
  {
    $str.=($rcd[$indxNames[$i]].$spe);
	$i++;
  }
  return $str;
}
function allExplode($spe,$rcd)
{
	if(!is_array($rcd)) return $rcd;
	$str='';
	foreach($rcd as $k => $v)
	{
		$str.=$k.'='.$v.$spe;
	}
	return $str;
}
function myallExplode($spe,$content)
{
	if(empty($content)) return $content;
	$rcd=array();
	$pars=explode($spe,$content);
	foreach($pars as $val)
	{
		$tem=explode('=',$val,2);
		if(is_array($tem) && count($tem)==2) $rcd[$tem[0]]=$tem[1];
	}
	return $rcd;
}
function myExplode($spe,$indxNames,$content)
{
  $i=0;
  $rcd=array();
  $pars=explode($spe,$content);
  while ($indxNames[$i]!='')
  {
    $rcd[$indxNames[$i]]=$pars[$i];
	$i++;
  }
  return $rcd;
}
$d=array(   
array("a",-20319),   
array("ai",-20317),   
array("an",-20304),   
array("ang",-20295),   
array("ao",-20292),   
array("ba",-20283),   
array("bai",-20265),   
array("ban",-20257),   
array("bang",-20242),   
array("bao",-20230),   
array("bei",-20051),   
array("ben",-20036),   
array("beng",-20032),   
array("bi",-20026),   
array("bian",-20002),   
array("biao",-19990),   
array("bie",-19986),   
array("bin",-19982),   
array("bing",-19976),   
array("bo",-19805),   
array("bu",-19784),   
array("ca",-19775),   
array("cai",-19774),   
array("can",-19763),   
array("cang",-19756),   
array("cao",-19751),   
array("ce",-19746),   
array("ceng",-19741),   
array("cha",-19739),   
array("chai",-19728),   
array("chan",-19725),   
array("chang",-19715),   
array("chao",-19540),   
array("che",-19531),   
array("chen",-19525),   
array("cheng",-19515),   
array("chi",-19500),   
array("chong",-19484),   
array("chou",-19479),   
array("chu",-19467),   
array("chuai",-19289),   
array("chuan",-19288),   
array("chuang",-19281),   
array("chui",-19275),   
array("chun",-19270),   
array("chuo",-19263),   
array("ci",-19261),   
array("cong",-19249),   
array("cou",-19243),   
array("cu",-19242),   
array("cuan",-19238),   
array("cui",-19235),   
array("cun",-19227),   
array("cuo",-19224),   
array("da",-19218),   
array("dai",-19212),   
array("dan",-19038),   
array("dang",-19023),   
array("dao",-19018),   
array("de",-19006),   
array("deng",-19003),   
array("di",-18996),   
array("dian",-18977),   
array("diao",-18961),   
array("die",-18952),   
array("ding",-18783),   
array("diu",-18774),   
array("dong",-18773),   
array("dou",-18763),   
array("du",-18756),   
array("duan",-18741),   
array("dui",-18735),   
array("dun",-18731),   
array("duo",-18722),   
array("e",-18710),   
array("en",-18697),   
array("er",-18696),   
array("fa",-18526),   
array("fan",-18518),   
array("fang",-18501),   
array("fei",-18490),   
array("fen",-18478),   
array("feng",-18463),   
array("fo",-18448),   
array("fou",-18447),   
array("fu",-18446),   
array("ga",-18239),   
array("gai",-18237),   
array("gan",-18231),   
array("gang",-18220),   
array("gao",-18211),   
array("ge",-18201),   
array("gei",-18184),   
array("gen",-18183),   
array("geng",-18181),   
array("gong",-18012),   
array("gou",-17997),   
array("gu",-17988),   
array("gua",-17970),   
array("guai",-17964),   
array("guan",-17961),   
array("guang",-17950),   
array("gui",-17947),   
array("gun",-17931),   
array("guo",-17928),   
array("ha",-17922),   
array("hai",-17759),   
array("han",-17752),   
array("hang",-17733),   
array("hao",-17730),   
array("he",-17721),   
array("hei",-17703),   
array("hen",-17701),   
array("heng",-17697),   
array("hong",-17692),   
array("hou",-17683),   
array("hu",-17676),   
array("hua",-17496),   
array("huai",-17487),   
array("huan",-17482),   
array("huang",-17468),   
array("hui",-17454),   
array("hun",-17433),   
array("huo",-17427),   
array("ji",-17417),   
array("jia",-17202),   
array("jian",-17185),   
array("jiang",-16983),   
array("jiao",-16970),   
array("jie",-16942),   
array("jin",-16915),   
array("jing",-16733),   
array("jiong",-16708),   
array("jiu",-16706),   
array("ju",-16689),   
array("juan",-16664),   
array("jue",-16657),   
array("jun",-16647),   
array("ka",-16474),   
array("kai",-16470),   
array("kan",-16465),   
array("kang",-16459),   
array("kao",-16452),   
array("ke",-16448),   
array("ken",-16433),   
array("keng",-16429),   
array("kong",-16427),   
array("kou",-16423),   
array("ku",-16419),   
array("kua",-16412),   
array("kuai",-16407),   
array("kuan",-16403),   
array("kuang",-16401),   
array("kui",-16393),   
array("kun",-16220),   
array("kuo",-16216),   
array("la",-16212),   
array("lai",-16205),   
array("lan",-16202),   
array("lang",-16187),   
array("lao",-16180),   
array("le",-16171),   
array("lei",-16169),   
array("leng",-16158),   
array("li",-16155),   
array("lia",-15959),   
array("lian",-15958),   
array("liang",-15944),   
array("liao",-15933),   
array("lie",-15920),   
array("lin",-15915),   
array("ling",-15903),   
array("liu",-15889),   
array("long",-15878),   
array("lou",-15707),   
array("lu",-15701),   
array("lv",-15681),   
array("luan",-15667),   
array("lue",-15661),   
array("lun",-15659),   
array("luo",-15652),   
array("ma",-15640),   
array("mai",-15631),   
array("man",-15625),   
array("mang",-15454),   
array("mao",-15448),   
array("me",-15436),   
array("mei",-15435),   
array("men",-15419),   
array("meng",-15416),   
array("mi",-15408),   
array("mian",-15394),   
array("miao",-15385),   
array("mie",-15377),   
array("min",-15375),   
array("ming",-15369),   
array("miu",-15363),   
array("mo",-15362),   
array("mou",-15183),   
array("mu",-15180),   
array("na",-15165),   
array("nai",-15158),   
array("nan",-15153),   
array("nang",-15150),   
array("nao",-15149),   
array("ne",-15144),   
array("nei",-15143),   
array("nen",-15141),   
array("neng",-15140),   
array("ni",-15139),   
array("nian",-15128),   
array("niang",-15121),   
array("niao",-15119),   
array("nie",-15117),   
array("nin",-15110),   
array("ning",-15109),   
array("niu",-14941),   
array("nong",-14937),   
array("nu",-14933),   
array("nv",-14930),   
array("nuan",-14929),   
array("nue",-14928),   
array("nuo",-14926),   
array("o",-14922),   
array("ou",-14921),   
array("pa",-14914),   
array("pai",-14908),   
array("pan",-14902),   
array("pang",-14894),   
array("pao",-14889),   
array("pei",-14882),   
array("pen",-14873),   
array("peng",-14871),   
array("pi",-14857),   
array("pian",-14678),   
array("piao",-14674),   
array("pie",-14670),   
array("pin",-14668),   
array("ping",-14663),   
array("po",-14654),   
array("pu",-14645),   
array("qi",-14630),   
array("qia",-14594),   
array("qian",-14429),   
array("qiang",-14407),   
array("qiao",-14399),   
array("qie",-14384),   
array("qin",-14379),   
array("qing",-14368),   
array("qiong",-14355),   
array("qiu",-14353),   
array("qu",-14345),   
array("quan",-14170),   
array("que",-14159),   
array("qun",-14151),   
array("ran",-14149),   
array("rang",-14145),   
array("rao",-14140),   
array("re",-14137),   
array("ren",-14135),   
array("reng",-14125),   
array("ri",-14123),   
array("rong",-14122),   
array("rou",-14112),   
array("ru",-14109),   
array("ruan",-14099),   
array("rui",-14097),   
array("run",-14094),   
array("ruo",-14092),   
array("sa",-14090),   
array("sai",-14087),   
array("san",-14083),   
array("sang",-13917),   
array("sao",-13914),   
array("se",-13910),   
array("sen",-13907),   
array("seng",-13906),   
array("sha",-13905),   
array("shai",-13896),   
array("shan",-13894),   
array("shang",-13878),   
array("shao",-13870),   
array("she",-13859),   
array("shen",-13847),   
array("sheng",-13831),   
array("shi",-13658),   
array("shou",-13611),   
array("shu",-13601),   
array("shua",-13406),   
array("shuai",-13404),   
array("shuan",-13400),   
array("shuang",-13398),   
array("shui",-13395),   
array("shun",-13391),   
array("shuo",-13387),   
array("si",-13383),   
array("song",-13367),   
array("sou",-13359),   
array("su",-13356),   
array("suan",-13343),   
array("sui",-13340),   
array("sun",-13329),   
array("suo",-13326),   
array("ta",-13318),   
array("tai",-13147),   
array("tan",-13138),   
array("tang",-13120),   
array("tao",-13107),   
array("te",-13096),   
array("teng",-13095),   
array("ti",-13091),   
array("tian",-13076),   
array("tiao",-13068),   
array("tie",-13063),   
array("ting",-13060),   
array("tong",-12888),   
array("tou",-12875),   
array("tu",-12871),   
array("tuan",-12860),   
array("tui",-12858),   
array("tun",-12852),   
array("tuo",-12849),   
array("wa",-12838),   
array("wai",-12831),   
array("wan",-12829),   
array("wang",-12812),   
array("wei",-12802),   
array("wen",-12607),   
array("weng",-12597),   
array("wo",-12594),   
array("wu",-12585),   
array("xi",-12556),   
array("xia",-12359),   
array("xian",-12346),   
array("xiang",-12320),   
array("xiao",-12300),   
array("xie",-12120),   
array("xin",-12099),   
array("xing",-12089),   
array("xiong",-12074),   
array("xiu",-12067),   
array("xu",-12058),   
array("xuan",-12039),   
array("xue",-11867),   
array("xun",-11861),   
array("ya",-11847),   
array("yan",-11831),   
array("yang",-11798),   
array("yao",-11781),   
array("ye",-11604),   
array("yi",-11589),   
array("yin",-11536),   
array("ying",-11358),   
array("yo",-11340),   
array("yong",-11339),   
array("you",-11324),   
array("yu",-11303),   
array("yuan",-11097),   
array("yue",-11077),   
array("yun",-11067),   
array("za",-11055),   
array("zai",-11052),   
array("zan",-11045),   
array("zang",-11041),   
array("zao",-11038),   
array("ze",-11024),   
array("zei",-11020),   
array("zen",-11019),   
array("zeng",-11018),   
array("zha",-11014),   
array("zhai",-10838),   
array("zhan",-10832),   
array("zhang",-10815),   
array("zhao",-10800),   
array("zhe",-10790),   
array("zhen",-10780),   
array("zheng",-10764),   
array("zhi",-10587),   
array("zhong",-10544),   
array("zhou",-10533),   
array("zhu",-10519),   
array("zhua",-10331),   
array("zhuai",-10329),   
array("zhuan",-10328),   
array("zhuang",-10322),   
array("zhui",-10315),   
array("zhun",-10309),   
array("zhuo",-10307),   
array("zi",-10296),   
array("zong",-10281),   
array("zou",-10274),   
array("zu",-10270),   
array("zuan",-10262),   
array("zui",-10260),   
array("zun",-10256),   
array("zuo",-10254)   
);   
function g($num){   
global $d;   
if($num>0&$num<160){   
   return chr($num);   
}   
elseif($num<-20319||$num>-10247){   
   return "";   
}else{   
   for($i=count($d)-1;$i>=0;$i--)   
    {if($d[$i][1]<=$num)break;}   
   return $d[$i][0];   
}   
}   
    
function c($str){   
$ret="";   
for($i=0;$i<strlen($str);$i++){   
   $p=ord(substr($str,$i,1));   
   if($p>160){   
    $q=ord(substr($str,++$i,1));   
    $p=$p*256+$q-65536;   
   }   
   $ret.=g($p);   
}   
return $ret;   
}  


function utf82gb($utfstr){ // UTF-8汉字转GBK汉字
if(function_exists('iconv')){ return iconv('utf-8','gbk',$utfstr); }
global $UC2GBTABLE;
$okstr = "";
if(trim($utfstr)=="") return $utfstr;
if(empty($UC2GBTABLE)){
$filename = dirname(__FILE__) . "/";
$fp = fopen($filename,"r");
while($l = fgets($fp,15))
{ $UC2GBTABLE[hexdec(substr($l, 7, 6))] = hexdec(substr($l, 0, 6));}
fclose($fp);
}
$okstr = "";
$ulen = strlen($utfstr);
for($i=0;$i<$ulen;$i++)
{
$c = $utfstr[$i];
$cb = decbin(ord($utfstr[$i]));
if(strlen($cb)==8){
   $csize = strpos(decbin(ord($cb)),"0");
   for($j=0;$j < $csize;$j++){
    $i++; $c .= $utfstr[$i];
   }
   $c = utf82u($c);
   if(isset($UC2GBTABLE[$c])){
    $c = dechex($UC2GBTABLE[$c]+0x8080);
    $okstr .= chr(hexdec($c[0].$c[1])).chr(hexdec($c[2].$c[3]));
   }
   else
   { $okstr .= "&#".$c.";";}
}
else $okstr .= $c;
}
$okstr = trim($okstr);
return $okstr;
}

  
  
?>